﻿package fr.babos.core.masters 
{
	import flash.display.Stage;
	import flash.display.StageAlign;
	import flash.display.StageScaleMode;
	import flash.events.Event;
	import fr.babos.core.log.Log;
	
	/**
	 * Le document de base.
	 * @author ZoulouX
	 */
	public class Document extends MasterMovieClip implements IDocument
	{
		/**
		 * L'instance du document
		 */
		protected static var __instance				:IDocument;
		
		
		/**
		 * La version du framework
		 */
		public static const FRAMEWORK_VERSION		:Number					= 0.3;
		
		/**
		 * UI Stage
		 */
		protected var _UIStage						:Boolean				= false;
		
		
		/**
		 * Récupérer l'instance du MasterDocument
		 */
		public static function get instance ():IDocument
		{
			return __instance;
		}
		
		
		/**
		 * Le constructeur
		 */
		public function Document (pUiStage:Boolean = false)
		{
			// Enregistrer l'instance
			__instance = this;
			
			// Afficher la version du Framework
			Log.log("-------------------------");
			Log.log("-- Babos AS3 Framework --");
			Log.log("--                v"
								 +FRAMEWORK_VERSION+
											  " --");
			Log.log("--     www.babos.fr    --");
			Log.log("-------------------------");
			Log.log("");
			
			// Enregistrer le mode de stage
			_UIStage = pUiStage;
			
			// Relayer
			super();
		}
		
		/**
		 * Intercépter l'ajout
		 */
		override protected function addedHandler (event:Event = null):void 
		{
			// Vérifier si on doit passer en stage UI
			if (_UIStage)
			{
				stage.align = StageAlign.TOP_LEFT;
				stage.scaleMode = StageScaleMode.NO_SCALE;
			}
			
			// Relayer
			super.addedHandler(event);
		}
	}
}